<?php

namespace app\admin\validate;

use think\Validate;

class Anli extends Validate
{
    /**
     * 验证规则
     */
    protected $rule = [
        'type_ids' => 'checkTypeIds'
    ];

    /**
     * 提示消息
     */
    protected $message = [
        'type_ids.checkTypeIds' => '关联分类不能超过4个'
    ];

    /**
     * 验证场景
     */
    protected $scene = [
        'add'  => ['type_ids'],
        'edit' => ['type_ids'],
    ];

    /**
     * 自定义验证方法 - 检查type_ids
     */
    protected function checkTypeIds($value, $rule, $data)
    {
        // 如果为空则通过验证
        if (empty($value)) {
            return true;
        }

        // 将字符串转为数组并过滤空值
        $ids = array_filter(explode(',', $value));

        // 检查数量是否超过4个
        if (count($ids) > 4) {
            return false;
        }

        return true;
    }
}
